;; Colour theme for Emacs
(eval-when-compile    (require 'color-theme))

(defun color-theme-dark-emacs ()
  "Dark Emacs is designed to be give a look and feel similar to
`emacs --no-window-system'. It is based on a theme made by the
emacswiki user, ZWZ. The original can be found at
http://www.emacswiki.org/emacs/zwz.

Color theme by Suvayu Ali, created 2010-10-10."
  (interactive)
  (let ((color-theme-is-cumulative nil))
    (color-theme-install
     '(color-theme-dark-emacs
       ;; Frame parameters
       ((background-color . "black")
	(background-mode . dark)
	(border-color . "blue")
	(cursor-color . "red")
	(foreground-color . "ivory2"))
       ;; Variable settings
       ((list-matching-lines-buffer-name-face . underline)
	(list-matching-lines-face . match)
	(org-goto-interface . outline)
	(view-highlight-face . highlight))
       ;; (widget-mouse-face . highlight))
       ;; Face definitions
       (default ((t (:background "black" :foreground "ivory2"))))
       (bold ((t (:bold t :foreground "ivory2" :background "black" :weight bold ))))
       (bold-italic ((t (:italic t :bold t :slant italic :foreground "blanched almond" :background "black" :weight bold ))))
       (border ((t (:background "blue"))))
       (buffer-menu-buffer ((t (:bold t :weight bold))))
       (button ((t (:underline t))))
       (calendar-today ((t (:underline t))))
       (comint-highlight-input ((t (:bold t :weight bold))))
       (comint-highlight-prompt ((t (:foreground "cyan1"))))
       (completions-annotations ((t (:italic t :slant italic :foreground "blanched almond" :background "black" ))))
       (completions-common-part ((t (:foreground "forest green"))))
       (completions-first-difference ((t (:bold t :foreground "salmon" :weight bold))))
       (cursor ((t (:background "red"))))
       (diary ((t (:foreground "yellow1"))))
       (dired-directory ((t (:bold t :weight bold :foreground "white" :background "black" ))))
       (dired-flagged ((t (:bold t :weight bold :foreground "Red1" :background "black" ))))
       (dired-header ((t (:italic t :foreground "orchid" :background "black" :slant italic ))))
       (dired-ignored ((t (:foreground "grey70"))))
       (dired-mark ((t (:foreground "LightGoldenrod1" :background "black" ))))
       (dired-marked ((t (:bold t :weight bold :foreground "Red1" :background "black" ))))
       (dired-perm-write ((t (:italic t :slant italic :background "black" :foreground "cyan3" ))))
       (dired-symlink ((t (:italic t :foreground "firebrick1" :background "black" :slant italic ))))
       (dired-warning ((t (:bold t :weight bold :foreground "Red1" :background "black" ))))
       (escape-glyph ((t (:foreground "cyan"))))
       (file-name-shadow ((t (:foreground "grey70"))))
       (font-lock-builtin-face ((t (:background "black" :foreground "gold" ))))
       (font-lock-comment-delimiter-face ((t (:italic t :foreground "cyan3" :background "black" :slant italic ))))
       (font-lock-comment-face ((t (:italic t :slant italic :background "black" :foreground "cyan3" ))))
       (font-lock-constant-face ((t (:background "black" :foreground "LightGoldenrod1" ))))
       (font-lock-doc-face ((t (:foreground "lawn green" :background "black" ))))
       (font-lock-function-name-face ((t (:bold t :background "black" :foreground "white" :weight bold ))))
       (font-lock-keyword-face ((t (:italic t :slant italic :background "black" :foreground "firebrick1" ))))
       (font-lock-negation-char-face ((t (nil))))
       (font-lock-preprocessor-face ((t (:background "black" :foreground "IndianRed3" ))))
       (font-lock-regexp-grouping-backslash ((t (:bold t :weight bold :background "black" :foreground "ivory2" ))))
       (font-lock-regexp-grouping-construct ((t (:bold t :weight bold :background "black" :foreground "ivory2" ))))
       (font-lock-string-face ((t (:background "black" :foreground "lawn green" ))))
       (font-lock-type-face ((t (:italic t :slant italic :background "black" :foreground "orchid" ))))
       (font-lock-variable-name-face ((t (:bold t :weight bold :background "black" :foreground "orange" ))))
       (font-lock-warning-face ((t (:bold t :background "black" :foreground "Red1" :weight bold ))))
       (fringe ((t (:background "grey10"))))
       (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
       (help-argument-name ((t (:italic t :slant italic :foreground "blanched almond" :background "black" ))))
       (highlight ((t (:background "blue" :foreground "yellow" ))))
       (holiday ((t (:background "chocolate4"))))
       (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
       (isearch-fail ((t (:background "red4"))))
       (iswitchb-current-match ((t (:bold t :weight bold :foreground "white" :background "black" ))))
       (iswitchb-invalid-regexp ((t (:bold t :weight bold :foreground "Red1" :background "black" ))))
       (iswitchb-single-match ((t (:italic t :foreground "cyan3" :background "black" :slant italic ))))
       (iswitchb-virtual-matches ((t (:foreground "gold" :background "black" ))))
       (italic ((t (:italic t :background "black" :foreground "blanched almond" :slant italic ))))
       (lazy-highlight ((t (:background "paleturquoise4"))))
       (link ((t (:foreground "cyan1" :underline t))))
       (link-visited ((t (:underline t :foreground "violet"))))
       (match ((t (:background "RoyalBlue3"))))
       (menu ((t (nil))))
       (minibuffer-prompt ((t (:bold t :foreground "dark cyan" :weight bold))))
       (mode-line ((t (:background "azure" :foreground "blue" :box (:line-width -1 :style released-button)))))
       (mode-line-buffer-id ((t (:bold t :background "ghost white" :foreground "red" :weight bold))))
       (mode-line-emphasis ((t (:bold t :weight bold))))
       (mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button)))))
       (mode-line-inactive ((t (:background "grey30" :foreground "grey80" :box (:line-width -1 :color "grey40" :style nil) :weight light))))
       (mouse ((t (nil))))
       (next-error ((t (:background "blue3"))))
       (nobreak-space ((t (:foreground "cyan" :underline t))))
       (org-agenda-clocking ((t (:background "blue"))))
       (org-agenda-column-dateline ((t (:background "grey30" ))))
       (org-agenda-date ((t (:foreground "LightSkyBlue"))))
       (org-agenda-date-today ((t (:italic t :bold t :foreground "LightSkyBlue" :slant italic :weight bold))))
       (org-agenda-date-weekend ((t (:bold t :foreground "LightSkyBlue" :weight bold))))
       (org-agenda-diary ((t (:foreground "ivory2" :background "black" ))))
       (org-agenda-dimmed-todo-face ((t (:foreground "grey50"))))
       (org-agenda-done ((t (:foreground "PaleGreen"))))
       (org-agenda-restriction-lock ((t (:background "skyblue4"))))
       (org-agenda-structure ((t (:foreground "LightSkyBlue"))))
       (org-archived ((t (:foreground "grey70"))))
       (org-block ((t (:foreground "grey70"))))
       (org-checkbox ((t (:bold t :weight bold :background "black" :foreground "ivory2" ))))
       (org-checkbox-statistics-done ((t (:italic t :bold t :weight bold :slant oblique :foreground "DarkSeaGreen2" :background "ForestGreen"))))
       (org-checkbox-statistics-todo ((t (:bold t :weight bold :foreground "thistle" :background "royalblue4"))))
       (org-clock-overlay ((t (:background "SkyBlue4"))))
       (org-code ((t (:foreground "grey70"))))
       (org-column ((t (:background "grey30"))))
       (org-column-title ((t (:bold t :background "grey30" :underline t :weight bold))))
       (org-date ((t (:foreground "Cyan" :underline t))))
       (org-document-info ((t (:foreground "pale turquoise"))))
       (org-document-info-keyword ((t (:foreground "grey70"))))
       (org-document-title ((t (:bold t :foreground "pale turquoise" :weight bold :height 1.44))))
       (org-done ((t (:italic t :bold t :background "ForestGreen" :foreground "DarkSeaGreen2" :slant oblique :weight bold))))
       (org-drawer ((t (:foreground "LightSkyBlue"))))
       (org-ellipsis ((t (:foreground "LightGoldenrod" :underline t))))
       (org-footnote ((t (:foreground "Cyan" :underline t))))
       (org-formula ((t (:foreground "chocolate1"))))
       (org-headline-done ((t (:foreground "LightSalmon"))))
       (org-hide ((t (:foreground "black"))))
       (org-latex-and-export-specials ((t (:foreground "burlywood"))))
       (org-level-1 ((t (:bold t :background "black" :foreground "white" :weight bold ))))
       (org-level-2 ((t (:bold t :weight bold :background "black" :foreground "orange" ))))
       (org-level-3 ((t (:italic t :slant italic :background "black" :foreground "firebrick1" ))))
       (org-level-4 ((t (:italic t :slant italic :background "black" :foreground "cyan3" ))))
       (org-level-5 ((t (:italic t :slant italic :background "black" :foreground "orchid" ))))
       (org-level-6 ((t (:background "black" :foreground "LightGoldenrod1" ))))
       (org-level-7 ((t (:background "black" :foreground "gold" ))))
       (org-level-8 ((t (:background "black" :foreground "lawn green" ))))
       (org-link ((t (:foreground "Cyan" :underline t))))
       (org-meta-line ((t (:italic t :foreground "cyan3" :background "black" :slant italic ))))
       (org-mode-line-clock ((t (:box (:line-width -1 :style released-button) :foreground "blue" :background "azure"))))
       (org-mode-line-clock-overrun ((t (:box (:line-width -1 :style released-button) :foreground "blue" :background "red"))))
       (org-property-value ((t (nil))))
       (org-quote ((t (:foreground "grey70"))))
       (org-scheduled ((t (:foreground "PaleGreen"))))
       (org-scheduled-previously ((t (:foreground "chocolate1"))))
       (org-scheduled-today ((t (:foreground "PaleGreen"))))
       (org-sexp-date ((t (:foreground "Cyan"))))
       (org-special-keyword ((t (:foreground "LightSalmon"))))
       (org-table ((t (:foreground "LightSkyBlue"))))
       (org-tag ((t (:bold t :weight bold))))
       (org-target ((t (:underline t))))
       (org-time-grid ((t (:foreground "LightGoldenrod"))))
       (org-todo ((t (:bold t :background "royalblue4" :foreground "thistle" :weight bold))))
       (org-upcoming-deadline ((t (:foreground "chocolate1"))))
       (org-verbatim ((t (:foreground "grey70"))))
       (org-verse ((t (:foreground "grey70"))))
       (org-warning ((t (:bold t :weight bold :foreground "Red1" :background "black" ))))
       (outline-1 ((t (:bold t :weight bold :foreground "white" :background "black" ))))
       (outline-2 ((t (:bold t :foreground "orange" :background "black" :weight bold ))))
       (outline-3 ((t (:italic t :foreground "firebrick1" :background "black" :slant italic ))))
       (outline-4 ((t (:italic t :foreground "cyan3" :background "black" :slant italic ))))
       (outline-5 ((t (:italic t :foreground "orchid" :background "black" :slant italic ))))
       (outline-6 ((t (:foreground "LightGoldenrod1" :background "black" ))))
       (outline-7 ((t (:foreground "gold" :background "black" ))))
       (outline-8 ((t (:foreground "lawn green" :background "black" ))))
       (query-replace ((t (:foreground "brown4" :background "palevioletred2"))))
       (region ((t (:background "blue3"))))
       (rst-level-1-face ((t (:background "grey85" :foreground "black"))))
       (scroll-bar ((t (nil))))
       (secondary-selection ((t (:background "blue"))))
       (shadow ((t (:foreground "grey70"))))
       (show-paren-match ((t (:background "SlateBlue1"))))
       (show-paren-mismatch ((t (:background "magenta" :foreground "white"))))
       (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
       (tooltip ((t (:background "lightyellow" :foreground "black"))))
       (trailing-whitespace ((t (:background "red1"))))
       (underline ((t (:background "black" :foreground "green" :underline t))))
       (vertical-border ((t (nil))))
       (widget-button ((t (:bold t :weight bold))))
       (widget-button-pressed ((t (:foreground "red1"))))
       (widget-documentation ((t (:foreground "lime green"))))
       (widget-field ((t (:background "dim gray"))))
       (widget-inactive ((t (:foreground "grey70"))))
       (widget-single-line-field ((t (:background "dim gray"))))))))
(add-to-list 'color-themes '(color-theme-dark-emacs  "Dark Emacs" "Suvayu Ali"))
